/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mycompany.yourtrade.service.user;

import com.mycompany.yourtrade.model.Order;
import com.mycompany.yourtrade.model.OrderDto;
import com.mycompany.yourtrade.model.UserCart;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 *
 * @author xg
 */
public interface UserOrderService {
    /**
     * 添加购物车
     * @param userCart
     * @return 
     */
    public Integer addCart(UserCart userCart);
    /**
     * 更改购物车数量
     * @param number
     * @param id
     * @return 
     */
    public Integer updateCartById(@Param("number")int number,@Param("id")String id);
    /**
     * 根据UserId 批量删除购物车
     * @param cartArry
     * @param userId
     * @return 
     */
    public Integer deleteCartById(@Param("cartArry") String[] cartArry,@Param("userId") String userId);
    /**
     * 根据ID获取购物车详情
     * @param id
     * @return 
     */
    public UserCart getCartInfoById(@Param("id")String id);
    /**
     * 根据UserId获取购物车列表
     * @param userId
     * @return 
     */
    public List<UserCart> getCartListByUserId(@Param("userId") String userId);
    /**
     * 添加订单
     * @param order
     * @return 
     */
    public Integer addOrderByUserId(Order order);
    /**
     * 更新订单状态，编码
     * @param code
     * @param orderState
     * @param id
     * @return 
     */
    public Integer updateOrderCodeById(@Param("code") String code,@Param("orderState") String orderState,@Param("id") String id);
    /**
     * 删除订单
     * @param orderArry
     * @param userId
     * @return 
     */
    public Integer deleteOrderByUserId(@Param("orderArry") String[] orderArry,@Param("userId") String userId);
    /**
     * 获取订单详情
     * @param id
     * @return 
     */
    public Order getOrderInfoById(@Param("id") String id);
    /**
     * 获取订单列表
     * @param userId
     * @return 
     */
    public List<Order> getOrderListByUserId(@Param("userId") String userId);
    /**
     * 获取订单列表---根据订单状态
     * @param userId
     * @param orderState
     * @param page
     * @param pagesize
     * @return 
     */
    public List<OrderDto> getOrderListByType(@Param("userId") String userId,
            @Param("orderState") String orderState,
            @Param("page") int page,
            @Param("pagesize") int pagesize);
    /**
     * 获取订单列表---根据订单状态获取总数
     * @param userId
     * @param orderState
     * @return 
     */
    public Integer getCountByOrderType(@Param("userId") String userId,
            @Param("orderState") String orderState);
}
